A data communication network infrastructure, such as the Internet, can be composed of a large number of network nodes that are connected among one another. Network nodes refer to network components (e.g., clients, servers, microservices, virtual machines, serverless code instances, IoT devices, etc.) that communicate with one another according to predetermined protocols by means of wired or wireless communication links. The data communication network provides services to users according to requirements of the services, such as quality of service (QoS) commitments. Different types of services with different QoS requirements may be provided by the data communication network via different service links formed by the connections between the network nodes deployed in the network.
In a data communication network, resources for services are allocated and optimized according to a current state of the network. With arrivals of new service demands, it is often a desirable to migrate existing services to different sets of configurations, such as different service routes, resource allocations, or the like. In such circumstances, it is desirable to migrate the existing services smoothly such that service disruption is minimized. Moreover, the amount of hardware and software resources available on the data communication network may pose a constraint on the way in which the services can be migrated. It is thus desirable to migrate the existing services without exceeding the system limit.